// 1. 封装一个函数实现字符串翻转。

str1 = '123456';
function reverse(str) {
  return str.split('').reverse().join('');
}
console.log(reverse(str1));

// 2. 字符串 digite = "0123456789", 把前 5 个字符分割出来， 返回个单字符的数组, 注意， 返回数组里面的数字是字符串类型, string.split()

let digite = '0123456789';
console.log('2', digite.split('', 5)); // ['1','2,...'5']

// 3.已知有字符串 foo=”get-element-by-id”,写一个 function 将其转化成驼峰表示法”getElementById”.

let foo = 'get-element-by-id';
function f3(str) {
  str = str.split('-');
  for (let i = 1; i < str.length; i++) {
    str[i] = str[i].charAt(0).toUpperCase() + str[i].slice(1);
  }
  return str.join('');
}
console.log('f3', f3(foo));

// 4.定义一个函数,将"今天是什么鬼天气，这么热，明天要去游泳！"里面的有"天"的下标输出(用 indexof())

function f4(str, char) {
  const indexList = [];
  let index = str.indexOf(char);
  while (index !== -1) {
    indexList.push(index);
    index = str.indexOf(char, index + 1);
  }
  return indexList;
}
console.log(f4(str4, '天'));

// 5.定义一个函数,将"今天是什么鬼天气，这么热，明天要去游泳！"里面的有"天"替换成"日"(用 replace())

let str5 = '今天是什么鬼天气，这么热，明天要去游泳！';
function f5(str, newChar) {
  return str.replace(/天/g, newChar);
}
console.log(f5(str5, '日'));

// 6.解析 URL Params 为对象，例如(https://www.baidu.com/s?ie=UTF-8&wd=letcode)

// 返回结构如下:
// {
//     ie:"UTF-8",
//     wd:"letcode"
// }

let url = 'https://www.baidu.com/s?ie=UTF-8&wd=letcode';

function f6(url) {
  let obj = {},
    queryStr = url.split('?')[1];
  if (queryStr) {
    let parmArr = queryStr.split('&');
    for (let parm of parmArr) {
      let [key, val] = parm.split('=');
      if (key && val) {
        obj[key] = val;
      }
    }
  }
  return obj;
}
console.log('f6(url)', f6(url));

// 7.查找字符串中(abbcccddddd)出现最多的字符和个数

let str7 = 'abbcccddddd';
let obj7 = {};
function f7(str) {
  for (let i = 0; i < str.length; i++) {
    obj7[str[i]] == undefined ? (obj7[str[i]] = 1) : obj7[str[i]]++;
  }
  console.log('obj7', obj7);
}

// 8.  "hi javascript hi hello world!" 改成 "Hi Javascript! Hi Hello World!"

let str8 = 'hi javascript hi hello world!';
function f8(str) {
  let tem = str.split(' ');
  for (let i = 0; i < tem.length; i++) {
    if (i > 0 && tem[i] === 'hi') {
      tem[i - 1] += '!';
    }
    tem[i] = tem[i].charAt(0).toUpperCase() + tem[i].slice(1);
  }
  return tem.join(' ');
}
console.log(f8(str8));

// 9. 把 "hi javascript!" 改成 "Hi Javascript!"

let str9 = 'hi javascript!';

function f9(str) {
  let tem = str.split(' ');
  for (let i = 0; i < tem.length; i++) {
    tem[i] = tem[i].charAt(0).toUpperCase() + tem[i].slice(1);
  }
  return tem.join(' ');
}
console.log(f9(str9));
// 10. 定义一个函数, 函数功能是检测字符串是否包含指定字符, (指定字符可以支持多个, 只要包含其中一个指定字符即返回结果)
let str10 = '123';
function f10(str, chars) {
  for (const char of chars) {
    if (str.includes(char)) {
      return true;
    }
  }
  return false;
}
console.log(f10(str10, ['1', '2']));
